﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;

namespace ProyectoCine.AreaPrivada
{
    public partial class Usuarios : System.Web.UI.Page, IGrilla
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                ddlRol.DataSource = UsuarioDAO.CargarRol();
                ddlRol.DataValueField = "id_Rol";
                ddlRol.DataTextField = "nombre";
                ddlRol.DataBind();
                ddlRol.Items.Insert(0, new ListItem("Todos los Roles"));

                ViewState["Orden"] = "";
                gvUsuarios.DataKeyNames = new string[] {"userName"};
                gvUsuarios.DataKeyNames = new string[] { "dni" };
                cargarGrilla();
            }
        }

        protected void gvCine_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (gvUsuarios.SelectedIndex == -1) return;
            Session["dni_Usuario"] = gvUsuarios.SelectedDataKey.Value;
            Response.Redirect("/AltaUsuario.aspx");
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            int? rol = null;
            
            if (ddlRol.SelectedIndex != 0)
                rol = ddlRol.SelectedIndex;
            
            gvUsuarios.DataSource = UsuarioDAO.cargarGrillaByFiltro(rol,txtUserName.Text, txtApellido.Text);
            gvUsuarios.DataBind();
        }

        public void cargarGrilla()
        {
            gvUsuarios.DataSource = UsuarioDAO.cargarGrilla(ViewState["Orden"].ToString());
            gvUsuarios.DataBind();
        }

        protected void gvUsuarios_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvUsuarios.PageIndex = e.NewPageIndex;
            cargarGrilla();
        }

        protected void gvUsuarios_Sorting(object sender, GridViewSortEventArgs e)
        {
            ViewState["Orden"] = e.SortExpression;
            cargarGrilla();
        }
    }
}